package com.bzkj.basicinfo.service.wms.impl;

import com.bzkj.basicinfo.domain.basic.vo.WmsWarningTypeInfoTree;
import com.bzkj.basicinfo.domain.wms.WmsWarningTypeInfoEntity;
import com.bzkj.basicinfo.mapper.WmsWarningTypeInfoMapper;
import com.bzkj.basicinfo.service.wms.WmsWarningTypeInfoService;
import com.bzkj.common.core.domain.AjaxResult;
import com.bzkj.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * wms预警类型信息Service业务层处理
 *
 * @author ruoyi
 * @date 2025-02-26
 */
@Slf4j
@Service
public class WmsWarningTypeInfoServiceImpl implements WmsWarningTypeInfoService {
    @Autowired
    private WmsWarningTypeInfoMapper wmsWarningTypeInfoMapper;

    /**
     * 查询wms预警类型信息详情
     *
     * @param id wms预警类型信息主键
     * @return wms预警类型信息
     */
    @Override
    public R selectWmsWarningTypeInfoById(Long id) {
        return R.ok(wmsWarningTypeInfoMapper.selectWmsWarningTypeInfoById(id));
    }

    /**
     * 查询wms预警类型信息列表
     *
     * @return wms预警类型信息
     */
    @Override
    public R selectWmsWarningTypeInfoList() {
        //TODO 获取wms库存和ncc物料所使用的预警类型数据
        List<WmsWarningTypeInfoTree> list = wmsWarningTypeInfoMapper.selectWmsWarningTypeInfoList();
        return R.ok(list);
    }

    /**
     * 新增wms预警类型信息
     *
     * @param wmsWarningTypeInfo wms预警类型信息
     * @return 结果
     */
    @Override
    public AjaxResult insertWmsWarningTypeInfo(WmsWarningTypeInfoEntity wmsWarningTypeInfo) {
//        wmsWarningTypeInfo.setCreator(DateUtils.getNowDate());
        return AjaxResult.success(wmsWarningTypeInfoMapper.insertWmsWarningTypeInfo(wmsWarningTypeInfo));
    }

    /**
     * 修改wms预警类型信息
     *
     * @param wmsWarningTypeInfo wms预警类型信息
     * @return 结果
     */
    @Override
    public AjaxResult updateWmsWarningTypeInfo(WmsWarningTypeInfoEntity wmsWarningTypeInfo) {
        Integer warningType = wmsWarningTypeInfo.getWarningType();
        if (ObjectUtils.isNotEmpty(warningType)) {
            if (warningType == 0)
                wmsWarningTypeInfo.setWarningTypeName("有效期预警");
            if (warningType == 1)
                wmsWarningTypeInfo.setWarningTypeName("复验期预警");
            if (warningType == 2)
                wmsWarningTypeInfo.setWarningTypeName("低库存预警");
        }
        int i = wmsWarningTypeInfoMapper.updateWmsWarningTypeInfo(wmsWarningTypeInfo);
        return i > 0 ? AjaxResult.success("修改成功") : AjaxResult.error("修改失败，未找到指定数据");
    }


    /**
     * 删除wms预警类型信息信息
     *
     * @param id wms预警类型信息主键
     * @return 结果
     */
    @Override
    public AjaxResult deleteWmsWarningTypeInfoById(Integer id) {
        int i = wmsWarningTypeInfoMapper.deleteWmsWarningTypeInfoById(id);
        return i > 0 ? AjaxResult.success("删除成功") : AjaxResult.error("删除失败，未找到指定数据");
    }
}
